home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
tools
/
ask
/
source_
/
defines.mac
< prev
next >
Wrap
Text File
|
1998-09-12
|
5KB
|
179 lines
.nlist
.ifndef __DEFINES_MAC * 2重include対策
__DEFINES_MAC equ 1 * includeした印
*******************************************************************************
* アセンブラー用定数定義
*******************************************************************************
.text
.include iocscall.mac
.include doscall.mac
.nlist * doscallから.listで帰ってくるから
*******************************************************************************
* コード
ESC equ $1b
CR equ $0d
BS equ $08
TAB equ $09
SPC equ ' '
LF equ $0a
EOF equ $1a
*******************************************************************************
* 定数
* パス名要素長
MAXDRIVE equ (2+1)
MAXDIR equ (64+1)
MAXFILE equ (18+1)
MAXFNAME equ MAXFILE
MAXEXT equ (1+3+1) * '.'+拡張子+00
MAXPATH equ (2+64+18+1+3+1)
MAXDRVDIR equ (2+64+1) * ドライブ名+ディレクトリ
MAXFILEEXT equ (18+1+3+1) * ファイル名+'.'+拡張子+00
* ファイル属性
FA_ARCH equ $20
FA_DIREC equ $10
FA_RONLY equ $01
FA_HIDE equ $02
FA_SYS equ $04
FA_VOL equ $08
* ビット定数
BIT0 equ $0001
BIT1 equ $0002
BIT2 equ $0004
BIT3 equ $0008
BIT4 equ $0010
BIT5 equ $0020
BIT6 equ $0040
BIT7 equ $0080
BIT8 equ $0100
BIT9 equ $0200
BIT10 equ $0400
BIT11 equ $0800
BIT12 equ $1000
BIT13 equ $2000
BIT14 equ $4000
BIT15 equ $8000
BIT0123 equ (BIT3|BIT2|BIT1|BIT0)
BIT4567 equ (BIT4|BIT5|BIT6|BIT7)
BIT16 equ $00010000
BIT17 equ $00020000
BIT18 equ $00040000
BIT19 equ $00080000
BIT20 equ $00100000
BIT21 equ $00200000
BIT22 equ $00400000
BIT23 equ $00800000
BIT24 equ $01000000
BIT25 equ $02000000
BIT26 equ $04000000
BIT27 equ $08000000
BIT28 equ $10000000
BIT29 equ $20000000
BIT30 equ $40000000
BIT31 equ $80000000
* テキスト画面属性(BIOSサポート)
TBLACK equ 0
TCYAN equ BIT0
TYELLOW equ BIT1
TWHITE equ (BIT0|BIT1)
HLIGHT equ BIT2 * 強調
REVERSE equ BIT3 * 反転
*******************************************************************************
* IOCS work
CSRXMAX equ $0970 * .w テキストの桁数-1
CSRYMAX equ $0972 * .w テキストの行数-1
TXWDX equ CSRXMAX * .w 横方向の表示桁数-1 テキスト
TXWDY equ CSRYMAX * .w 縦方向の表示桁数-1
CURX equ $000974 * .w CURSOR X
CURY equ $000976 * .w CURSOR Y
CURSOR equ CURX * .l CURSOR X&Y
CSRX equ CURX * .w 現在のカーソルx座標
CSRY equ CURY * .w 現在のカーソルy座標
CURMODE equ $000992 * .b カーソル表示スイッチ(<>0で表示)
CSRSWITCH equ CURMODE * .b カーソル表示スイッチ(<>0で表示)
MTXOFST equ $0948 * .l テキスト画面トップのオフセット(B_CONSOL)
TCOLOR equ $000994 * .b TEXT COLOR
CRTMOD equ $00093C * .b CRTMOD
APGNO equ $00093D * .b アクティブページの数
TXPAGE equ $000942 * .w BIOS $1A~$1CでアクセスされるテキストVRAM
TXADRS equ $000944 * .l TXPAGEで指定されるVRAMのトップアドレス
APGADRS equ $00095C * .l TOP OF APAGE ADDRESS
GRCOLS equ $000964 * .w グラフィック色数:$0000 だとグラフィックは使用不可
GRUSE equ $0009DC * .b GRAPHIC USE MODE(TGUSEMD)
WK_B_KEYSNS equ $810 * .w B_KEYSNSのワークエリア
* I/O port
CRTCR20 equ $e80028 * CRTC R20
CRTCR21 equ $e8002a * CRTC R21
CRTCR22 equ $e8002c * CRTC R22
CRTCR23 equ $e8002e * CRTC R23
CRTCPORT equ $e80480 * CRTC port
GPIPCTRL equ $e88001 * GPIP Contorol port
* TEXT VRAM
TPLANE0 equ $e00000 * TEXT plane 0 top address
TPLANE1 equ $e20000 * TEXT plane 1 top address
TPLANE2 equ $e40000 * TEXT plane 2 top address
TPLANE3 equ $e60000 * TEXT plane 3 top address
TPSIZE equ $20000 * TEXT 1plane size
* Graphic VRAM
GRAM equ $c00000 * GRAM top address
GRSIZE equ $80000 * GRAM true size
GPALET equ $e82000 * グラフィックパレット
* System I/O
SRAM_PROTECT equ $e8e00d * $31=Write enable , $00 = disable
SRAM_ENABLE equ $31
SRAM_DISABLE equ $00
SRAM_MEM_LIMIT equ $ed0008 * メインメモリー上限
SRAM_PROG_TOP equ $ed0100 * SRAM Program top
SRAM_END equ $ed3fff * SRAM END Address
*******************************************************************************
* マクロ定義
*******************************************************************************
SUPERMODE macro * d0,a1破壊
* スーパーバイザーモードに移る
sub.l a1,a1 * a1=0 for Super visor mode
IOCS _B_SUPER
endm
*******************************************************************************
USERMODE macro * d0破壊
* ユーザーモードに戻る:a1レジスターを使うタイプ(普通)
local __end
cmp.l #-1,a1 * プログラマーズマニュアルは間違っている
* -1ならすでにスーパーバイザーモードである
beq __end * 元からスーパーバイザーモードにいた時はなにもしない
IOCS _B_SUPER * to user mode
__end:
endm
*******************************************************************************
BEEP macro * d0,d1破壊
moveq.l #7,d1
IOCS _B_PUTC
endm
*******************************************************************************
.endif
.list